package java_0385_codeblock;

import java.util.List;

public class CodeBlockDetail03 {
    public static void main(String[] args) {
        new B04();
        /**
         * getValue01
         * A04的静态代码块
         * getValue03
         * B04的静态代码块
         * getValue02
         * A04的普通代码块
         * A04的构造器
         * getValue04
         * B04的普通代码块
         * B04的构造器
         */
    }
}

class A04 {//父类
    public A04(){
        System.out.println("A04的构造器");//(7)
    }

    //静态属性
    private static int n1 = getValue01();//(1)

    //静态代码块
    static {
        System.out.println("A04的静态代码块");//(2)
    }

    //普通属性
    public int n3 = getValue02();//(5)

    //普通代码块
    {
        System.out.println("A04的普通代码块");//(6)
    }

    public int getValue02(){
        System.out.println("getValue02");
        return 10;
    }
    public static int getValue01() {
        System.out.println("getValue01");
        return 10;
    }
}

class B04 extends A04{//子类
    public B04(){
        System.out.println("B04的构造器");//(10)
    }

    //静态属性
    private static int n3= getValue03();//(3)

    //静态代码块
    static {
        System.out.println("B04的静态代码块");//(4)
    }

    //普通属性
    public int n5 = getValue04();//(8)

    //普通代码块
    {
        System.out.println("B04的普通代码块");//(9)
    }

    public static int getValue03(){
        System.out.println("getValue03");
        return 10;
    }
    public int getValue04(){
        System.out.println("getValue04");
        return 10;
    }

}
